1. Field
Embodiments of the invention relate to the field of computing systems architecture. More specifically, embodiments of the invention relate to the field of task scheduling in a computing systems architecture.
2. Background Information
Various storage systems and architectures are known in the arts. Representatively, certain large Serial Attached SCSI (SAS) storage systems may include hundreds of storage devices that are attached to the same SAS domain through expanders,
Serial Advanced Technology Attachment (SATA) port multipliers, and the like. SAS is described, for example, in the document Serial Attached SCSI specification 1.0, published November 2003, as well as related documents. SATA is described, for example, in the document “Serial ATA: High Speed Serialized AT Attachment”, Revision 1.0a, published on 7 Jan. 2003, as well as related documents.
Task scheduling is typically performed in such storage systems to schedule tasks to the attached storage devices. Depending in part on the particular architecture, representative tasks that may be scheduled include commands, frames, data, primitives, and the like.
Especially in large storage networks, such task scheduling may significantly affect overall performance. Scheduling tasks in an efficient manner may allow data to be exchanged in the storage system in an efficient manner, while scheduling tasks in an inefficient manner may incur unnecessary inefficiencies, such as, for example, unnecessary closures and re-openings of connections to attached storage devices, which may reduce the overall data exchange performance.
However, efficiently scheduling tasks in storage systems, especially large storage systems, remains challenging.